For Marketplace
  • Для Маркетплейсов
  • Платежные запросы
    • Платежные запросы
    • 1. Прием платежей с банковской карты на маркетплейсе или в виджете
      • 1.1 Перевод покупателя на платежную форму с помощью ссылки
      • 1.2 Перевод покупателя на платежную форму с помощью HTML - формы
      • 1.3 Создание операции с индивидуальными параметрами с помощью MONETA.MerchantAPI
    • 2. Уведомление о проведенной оплате
    • 3. Прием платежей с холдированием
    • 4. Запоминание банковской карты и прием платежей с сохраненной картой.
    • 5. Перевод денежных средств после подтверждения сделки (Безопасная сделка)
    • 6. Приём платежей в пользу разных продавцов одной операцией (Мультикорзина)
    • 7. Управление размером комиссии маркетплейса
    • 8. Выплаты продавцу на банковскую карту
  • ПОДКЛЮЧЕНИЕ ИНДИВИДУАЛЬНЫХ ПРЕДПРИНИМАТЕЛЕЙ И ЮРИДИЧЕСКИХ ЛИЦ К СИСТЕМЕ МОНЕТА.РУ
    • Личный кабинет маркетплейса
    • Уведомления E-mail при редактировании профиля продавца
    • Уведомления URL при редактировании профиля продавца
    • Варианты подключения к Системе МОНЕТА.РУ
      • ‌Вариант 1. Клиент маркетплейса подключается самостоятельно
      • ‌Вариант 2. Маркетплейс подключает клиента
        • Основные понятия
        • Набор полей в личном кабинете клиента
        • CreateProfileRequest
        • CheckProfileRequest
        • EditProfileRequest базового профиля
        • EditProfileRequest подпрофиля руководителя
        • FindProfileDocumentsRequest документа руководителя
        • EditProfileDocumentRequest документа руководителя
        • EditProfileRequest подпрофиля учредителя
        • EditProfileRequest подпрофиля бенефициарного владельца
        • FindProfileDocumentsRequest документа бенефициарного владельца
        • EditProfileDocumentRequest паспорта бенефициарного владельца
        • CreateBankAccountRequest
        • FindLegalInformationRequest подпрофиля юридических реквизитов
        • EditLegalInformationRequest
        • EditProfileRequest базового профиля с атрибутом CONDITIONS_CORRECT_DATA
        • CreateAccountRequest
        • FindProfileDocumentFilesRequest
  • РЕГИСТРАЦИЯ ФИЗИЧЕСКОГО ЛИЦА
    • Создание электронного кошелька
      • Пример 1. Последовательность запросов.
        • CreateProfileRequest
        • CreateProfileDocumentRequest
        • ApprovePhoneSendConfirmationRequest
        • ApprovePhoneApplyCodeRequest
        • SimplifiedIdentificationRequest
        • AsyncRequest
        • CreateAccountRequest
      • Пример 2. Последовательность запросов.
        • CreateProfileRequest
        • ApprovePhoneSendConfirmationRequest
        • ApprovePhoneApplyCodeRequest
        • SimplifiedIdentificationRequest
        • AsyncRequest
        • CreateAccountRequest
      • Актуализация данных клиента
    • Идентификация с помощью MonetaId
      • Схема взаимодействия
      • Стенды
      • Регистрация маркетплейса
      • Установление доверия
      • Аутентификация
      • Встраивание в iframe
      • Проверка возможности полной идентификации
      • Уведомления о статусе идентификации
  • САМОЗАНЯТЫЕ
    • Самозанятые
    • Защита маркетплейса в ФНС РФ
    • Сценарии использования MonetaNPD
      • 1. Регистрация самозанятого в Системе МОНЕТА.РУ
      • 2. Привязка самозанятого к маркетплейсу по номеру телефона
      • 3. Привязка самозанятого к маркетплейсу по ИНН
      • 4. Уведомление маркетплейса о статусе привязки
      • 5. Проведение упрощенной идентификации самозанятого
      • 6. Смена номера телефона самозанятого
      • 7. Привязка банковской карты для вывода средств с ЭСП "МОНЕТА.РУ"
      • 8. Выплата в пользу самозанятого от юридического лица
      • 9. Регистрация дохода самозанятого в ФНС и отправка чека
      • 10. Регистрацию дохода самозанятого в ФНС (offline режим)
      • 11. Вывод с ЭСП "МОНЕТА.РУ" на банковскую карту
      • 12. Выплата самозанятому через СБП
      • 13. Получение сообщений от ФНС
      • 14. Отметка о прочтении сообщений от ФНС
      • 15. Ежедневная проверка статуса привязки к маркетплейсу с контролем прав
      • 16. Установка прав для маркетплейса
    • Дополнительные возможности MonetaNPD
      • 17. Отвязка от маркетплейса
      • 18. Запрос баланса ЭСП "МОНЕТА.РУ" самозанятого
      • 19. Запрос статуса самозанятого
      • 20. Запрос суммы дохода, отмененного дохода и налога самозанятого за текущий год
      • 21. Запрос на сторнирование чека
      • 22. Регистрация статического QR-кода
      • 23. Регистрация и обновление Кассовой ссылки
      • 24. Получение ссылки на пополнение ЭСП самозанятого
      • 25. Получение статуса операции из Системы МОНЕТА.РУ
      • 26. Получение данных о самозанятом в Системе МОНЕТА.РУ
      • 27. Получение паспортных данных самозанятого в Системе МОНЕТА.РУ
      • 28. Получение состояния лицевого счета НП НПД
      • 29. Возврат по операции
      • 30. Получение истории операций
      • 31. Получить данные по начислению и уплате налога
      • 32. Получить реквизиты для уплаты налогов и пеней
      • 33. Оплата налога
    • Сценарий выплат самозанятым без открытия ЭСП
  • Управление денежными средствами на расчетных счетах клиентов
    • Управление расчетными счетами клиентов маркетплейса
  • Перевод денежных средств клиентов в Федеральное Казначейство
    • Перевод денежных средств в Федеральное Казначейство
  • 54-ФЗ
    • Применение контрольно-кассовой техники при осуществлении расчетов
      • Формирование чека в ККТ продавца
      • Формирование чека в ККТ маркетплейса
      • Формирование чека в ККТ ООО "ПЭЙ ЭНИ ВЭЙ"
        • Создание invoice
        • Оплата invoice
        • Рекуррентный платеж
        • Операции возврата
        • Получить данные операции
  • СБП
    • Система быстрых платежей
    • Описание полей для переводов СБП
    • Получение списка участников СБП
    • Протокол С2С. Сценарий C2C/Me2Me Push
    • Протокол С2С.Сценарий Me2Me Pull
    • Протокол C2B. Оплата товаров и услуг по QR
    • Протокол C2B. Многоразовые QR
    • Протокол C2B. Выставление счёта (InvoiceRequest) для оплаты по Кассовой ссылке СБП
    • Протокол C2B. Выставление счёта (InvoiceRequest) для оплаты по динамическому QR
    • Протокол C2B. Привязка счёта Плательщика (подписка)
      • Привязка счёта без оплаты
      • Оплата с привязкой счёта
      • Оплата с привязанного счёта
    • Протокол C2B. Возврат ранее принятых QR-платежей (C2B refund)
    • Протокол B2C «Прочие выплаты физическому лицу»
    • Получение статуса операции перевода СБП
    • Сервис Widget SBP/FPS
      • Схема взаимодействия
      • Регистрация маркетплейса
      • Установление доверия
      • Аутентификация
      • Встраивание в iframe
      • Уведомления о событиях
      • Пример запроса PaymentRequest
      • Просмотр истории транзакций
Powered by GitBook
On this page

Was this helpful?

  1. 54-ФЗ
  2. Применение контрольно-кассовой техники при осуществлении расчетов

Формирование чека в ККТ продавца

PreviousПрименение контрольно-кассовой техники при осуществлении расчетовNextФормирование чека в ККТ маркетплейса

Last updated 2 months ago

Was this helpful?

Для передачи информации, необходимой для формирования фискальных документов в ККТ продавца маркетплейс использует сервис , который поддерживает сбор и передачу информации о платеже в ККТ и сервисы продавца следующих типов: .

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

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

Настройка кассы

  1. Для транзитного счета маркетплейса и для счета продавца, создаются учетные записи в kassa.payanyway.ru

  2. В настройках kassa.payanyway.ru для транзитного счёта выбираем тип кассы: "МодульКасса", в поле "Ссылка на API МодульКассы" вводим значение

"-" (минус), логин, пароль, UUID киоска - поля должны быть пустые.

Касса должна быть включена (параметр "Касса включена").

Настраиваем PayURL, в случае использования транзитный PayURL, задаём другие необходимые параметры.

3. Настраиваем учетные записи в kassa.payanyway.ru для клиентов маркетплейса (продавцов), используя логин и пароль от "аккаунта 2" и номер расширенного счёта магазина. В экспертных настройках этих учетных записей указываем номер расширенного счёта (параметр "Родительский AccountId") транзитного счёта.

PayURL в этих учетных записях не используются, его настраивать не нужно.

Печать чеков

3.1. Передача номенклатуры через PayURL.

В случае передачи номенклатуры через PayURL в каждый элемент, описывающий товарную позицию, добавляется новый параметр "account". Этот параметр содержит номер расширенного счета клиента маркетпейса, в котором чек на этот товар нужно пробить.

Пример: ... "inventPositions": [ { "name": "TEST", "price": "20", "quantity": "1", "vatTag": "1105", "account": "12345678" } ],...

3.2. Передача номенклатуры в платёжном запросе Moneta.Assistant.

В случае передачи номенклатуры в платёжном запросе Moneta.Assistant, аналогично п.3.1, добавляется параметр "a".

Пример параметра формы платежного запроса: В случае передачи номенклатуры в платёжном запросе Moneta.Assistant, аналогично п.3.1, добавляется параметр "a". Пример параметра формы платежного запроса:

<input type="hidden" name="MNT_CUSTOM2"
value='{"customer":"test@test.ru",
"items":[{"n":"product name","p":"123.45","q":"3", "t":"1105",
"a":"12345678"}]}' />

3.3. Передача номенклатуры через API.

Данные для формирования чека можно передать в сервис kassa.payanyway.ru, при этом нет необходимости направлять url-уведомление об успешном платеже транзитом через сервис kassa.

Для передачи чека через API сервиса, используйте следующий код php:

<?php
// варианты налогообложения:
const paw_kassa_VAT0 = '1104'; // НДС 0%
const paw_kassa_VAT10 = '1103'; // НДС 10%
const paw_kassa_VAT18 = '1102'; // НДС 18% (c 01.01.2019 ставка 20%)
const paw_kassa_VATNOVAT = '1105'; // НДС не облагается
const paw_kassa_VATWR10 = '1107'; // НДС с рассч. ставкой 10%
const paw_kassa_VATWR18 = '1106'; // НДС с рассч. ставкой 18% (c 01.01.2019 ставка 20%)
const paw_kassa_VAT5 = '1108'; // ставка 5%
const paw_kassa_VAT7 = '1109'; // ставка 7%
const paw_kassa_VATWR5 = '1110' // расчётная ставка 5/105
const paw_kassa_VATWR7 = '1111' // расчётная ставка 7/107

//
// paw_kassa_sale - функция "печати" чека в кассе kassa.payanyway.ru, вызывать её нужно
// в обработчике PayURL в случае положительного ответа (SUCCESS)
//
// Параметры:
//
// $mnt_id - номер расширенного счёта (бизнес-счёта)
// $mnt_transaction_id - id (номер) заказа, однозначно определяющий заказ в системе магазина.
// В случае, если отправляется запрос на фискализацию чека возврата, необходимо добавить к
// MNT_TRANSACTION_ID префикс или постфикс.
// $mnt_operation_id - номер операции в системе MONETA.RU.
// $mnt_amount - сумма заказа (в формате Moneta.ru, пример: 100.00)
// $mnt_data_integrity_code - код проверки целостности данных
// $inventoryPositions = array(
// array(
// 'name' => 'tovar 1', 'price' => 1, 'quantity' => 2, 'vatTag' => paw_kassa_VATNOVAT,
// 'pm' => 'full_payment', 'po' => 'commodity', 'markCode' => array
(
'gs1m' => 'MDEwNDYzMDAzNDA3MDAxMjIxQ01LNDVCcmhOMFdMZg=='
)
// ),
// array(
// 'name' => 'tovar 2', 'price' => 3, 'quantity' => 1, 'vatTag' => paw_kassa_VATNOVAT,
// 'pm' => 'full_payment', 'po' => 'commodity', 'idInternal' => '1122334455')
// - позиции заказа,
//
// где:
// name - название товара
// price - цена за единицу товара
// quantity - количество единиц товара
// vatTag - вариант налогообложения
// markCode - код маркировки товара
Здесь:
gs1m - код товара, считанный с маркированного товара, в формате GS1 Data Matrix
(например: 010463003407001221CMK45BrhN0WLf). В связи с тем, что в коде маркировки могут быть
непечатные символы, необходимо перед отправкой кодировать строку с кодом маркировки в
Base64.
base64_encode(010463003407001221CMK45BrhN0WLf) = MDEwNDYzMDAzNDA3MDAxMjIxQ01LNDVCcmhOMFdMZg==
hex - код товара в шестнадцатеричном формате
// idInternal - внутренний код товара из учётной системы магазина. Если в личном кабинете
//kassa.payanyway.ru, была добавлена номенклатура с данным кодом товара, то данные номенклатуры
будут //добавлены в чек.
//
// для 'name' в $inventoryPositions надо делать преобразование cleanProductName
//
// $client['email'] - email покупателя
// $client['phone'] - номер телефона покупателя.
// Только цифры и символ “+” (без пробелов, др. символов)
// $client['name'] - наименование покупателя (клиента). Наименование организации или фамилия, имя,
// отчество (при наличии), серия и номер паспорта покупателя (клиента)
// $client['inn'] - ИНН организации или покупателя (клиента)
function cleanProductName($value)
{
$result = preg_replace('/[^0-9a-zA-Zа-яА-Я-,. ]/ui', '', htmlspecialchars_decode($value));
//$result = trim(mb_substr($result, 0, 20));
return $result;
}
function paw_kassa_sale($mnt_id, $mnt_transaction_id, $mnt_operation_id, $mnt_amount,
$mnt_data_integrity_code, $client, $inventoryPositions)
{
$productsTototal = 0;
foreach ($inventoryPositions AS $item)
{
$productsTototal = $productsTototal + floatval($item['price'])*floatval($item['quantity']);
}
if (floatval($productsTototal) != floatval($mnt_amount))
{
$discountRate = floatval($mnt_amount) / floatval($productsTototal);
$newInvenrory = array();
foreach ($inventoryPositions AS $item)
{
$item['price'] = round(floatval($item['price']) * $discountRate, 5);
$newInvenrory[] = $item;
}
$inventoryPositions = $newInvenrory;
}
$data = array(
'operationId' => $mnt_operation_id,
'checkoutDateTime' => date(DATE_ATOM),
'docNum' => $mnt_transaction_id,
'docType' => 'SALE',
'inventPositions' => $inventoryPositions,
'moneyPositions' => array(array('paymentType' => 'CARD', 'sum' => $mnt_amount)),
'client' => array(
'email' => $client['email'],
'phone' => $client['phone'],
'name' => cleanProductName($client['name']),
'inn' => cleanProductName($client['inn']),
),
);
$data['signature'] = md5($data['docNum'].$data['checkoutDateTime'].$mnt_data_integrity_code);
if (isset($_SERVER['HTTP_HOST']))
$domainName = $_SERVER['HTTP_HOST'];
else
$domainName = $_SERVER['SERVER_NAME'];
$data['telemetry'] = array('domain' => $domainName);
$jsonData = preg_replace_callback('/\\\\u(\w{4})/', function ($matches) {
return html_entity_decode('&#x' . $matches[1] . ';', ENT_COMPAT, 'UTF-8');
}, json_encode($data));
$operationUrl = 'https://kassa.payanyway.ru/api/api.php?accountid='.$mnt_id.'&group=receipt';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $operationUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: '.strlen($jsonData)
));
$result = curl_exec($ch);
curl_close($ch);
return $result;
}

Чтобы фискализировать чек на возврат, нужно передать значение SALE_RETURN в параметре docType:

$data = array(
'operationId' => $mnt_operation_id,
'checkoutDateTime' => date(DATE_ATOM),
'docNum' => 'RETURN_'.$mnt_transaction_id,
'docType' => 'SALE_RETURN',
'inventPositions' => $inventoryPositions,
'moneyPositions' => array(array('paymentType' => 'CARD', 'sum' => $mnt_amount)),
'client' => array(
'email' => $client['email'],
'phone' => $client['phone'],
'name' => cleanProductName($client['name']),
'inn' => cleanProductName($client['inn']),
),
);

При передаче чека на зачёт предоплаты (чек, фискализируемый при отгрузке товара), тип оплаты paymentType должен быть передан как PREPAID.

Также в строки номенклатуры можно добавить параметр account для распределения чеков по магазинам торговой площадки при испоьзовании площадкой мультикорзины.

https://kassa.payanyway.ru
https://kassa.payanyway.ru/instruction
https://kassa.payanyway.ru