Фискализация продаж

  1. Получение услуги
  2. Оформление чеков типа “Приход”
  1. Оформление чеков типа “Возврат Прихода”
  1. Справочники:
  1. Ошибки

Фискализация продаж

1. Получение услуги

Для получения доступа к сервису фискализации продаж необходимо:

  1. иметь представление о базовых запросах к сервисам платежного шлюза (далее ПШ), в частности о запросе регистрации заказа (метод register);
  2. иметь договор с компанией, предоставляющей услуги онлайн-кассы;
  3. заполнить заявки на настройку функционала (предоставляются службой тех. поддержки).

Принцип работы: Система Интернет точки продажи взаимодействует с сервисами ПШ по стандартному протоколу, в рамках которого существует возможность передачи дополнительной информацию о содержимом корзины (которую оплачивает Клиент сайта). Эти данные агрегируются в системе ПШ и затем отправляются на сервер онлайн-кассы. Сервисы онлайн-кассы получают эти данные, фиксируют их на фискальном накопителе, формируют чек и отправляют результат в ОФД.

2. Оформление чеков типа “Приход”

Сервис фискализации интегрирован в базовый сервис ПШ, отвечающий за операции над заказами - orderv2. Для того, чтобы передать данные для формирования чека, используется метод register. Если данные переданы корректно, данный метод одновременно выполняет и функцию регистрации заказа в системе ПШ и функцию передачи данных, для последующей отправки их в онлайн-кассу.

Параметры, необходимые для формирования фискального чека типа “Приход”, могут быть:

  1. переданы точкой продажи самостоятельно (см. 2.1);
  2. заведены в системе ПШ (см. 2.2).

2.1 Передача параметров чека точкой продажи

Информация о продаваемых товаре(ах) и/или услуге(ах) (далее элемент корзины) передаются в блоке параметров OrderItem. Каждый элемент корзины или группа одинаковых элементов корзины передаются в одном OrderItem.

Важно:

Параметры запроса:

параметр обязательное поле(М) / необязательное поле (О) тип назначение комментарий пример
OrderItem О complex блок параметров по элементу(ам) корзины
typename М string тип товара/услуги goods
taxation_system О string СНО см 4.2 данные о СНО можно не передавать, если компания использует только одну СНО;
если компания использует несколько СНО при продаже, для каждого элемента OrderItem должна быть указана своя СНО;
если СНО указано неверно или с ошибкой - чек не будет оформлен
general
quantity О float, целая часть не более 5 знаков,дробная часть не более 3 знаков количество товаров/услуг 10
name О string не более 64 символов наименование товара Футболка
measure O string max 64 единица измерения элемента корзины Штука (по умолчанию, если иного не указано)
amount О complex сумма полностью по всем элементам данного OrderItem
amount/currency М string код валюты RUB
amount/amount М float сумма полностью
agent_info О complex признак агента
agent_info/type М string не более 32 символов признак агента см 4.4 commission_agen
taxation_item_type O string не более 32 символов признак предмета расчета см 4.5 other
taxation_item_settlement_method O string не более 32 символов признака способа расчета см 4.6 full_prepayment
taxes О complex описание налогов для элемента данного OrderItem
taxes/tax М complex описание налога
taxes/taxes_tax_type М string тип налога vat
taxes/taxes_tax_source O string источник данных о налогах по данному элементу OrderItem см 4.3 sirena
taxes/taxes_tax_percentage М string размер налога см 4.1 если элемент OrderItem не облагается НДС, в запросе указывается percentage = no; если указан процент отличный от значений в таблице 4.1 - система выставит значение 18 10
taxes/taxes_tax_amount М complex сумма налога
taxes/taxes_tax_amount/currency М string код валюты RUB
taxes/taxes_tax_amount/amount М float сумма налога по данному элементу(ам) OrderItem
supplier_info О complex данные о поставщике товара/услуги
supplier_info/name О string юр.лицо поставщика
supplier_info/inn М string ИНН поставщика
supplier_info/phone О string телефон поставщика
clearing О string тип взаиморасчетов card
number М string номер элемента в системе провайдера товара/услуги 12345
host О string код провайдера товара/услуги shop

Пример запроса:

<soap-env:Envelope
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:Body>
        <register>
            <order>
                <shop_id>123</shop_id>
                <number>12345</number>
            </order>
            <cost>
                <currency>RUB</currency>
                <amount>1010</amount>
            </cost>
            <customer>
                <phone>+79859998877</phone>
                <name>Василий Пупкин</name>
                <email>vasya@mail.ru</email>
            </customer>
            <description>
                <timelimit>2015-04-21T23:23:23</timelimit>
                <sales>
                    <OrderItem>
                        <typename>goods</typename>
                        <quantity>10</quantity>
                        <name>Футболка</name>
                        <amount>
                            <currency>RUB</currency>
                            <amount>1000</amount>
                        </amount>
                        <agent_info>
                            <type>commission_agent</type>
                        </agent_info>
                        <number>12345</number>
                        <taxation_system>general</taxation_system>
                        <taxes>
                            <tax type="vat">
                                <percentage>10</percentage>
                                <amount>
                                    <currency>RUB</currency>
                                    <amount>100</amount>
                                </amount>
                            </tax>
                        </taxes>
                    </OrderItem>
                    <OrderItem>
                        <typename>service</typename>
                        <name>Собственные сборы</name>
                        <clearing></clearing>
                        <amount>
                            <currency>RUB</currency>
                            <amount>10</amount>
                        </amount>
                        <taxation_system>simple_income</taxation_system>
                        <number>12345</number>
                        <host>sirena</host>
                        <taxes>
                            <tax type="vat">
                                <percentage>no</percentage>
                                <amount>
                                    <currency>RUB</currency>
                                    <amount>0</amount>
                                </amount>
                                <source>shop</source>
                            </tax>
                        </taxes>
                    </OrderItem>
                </sales>
            </description>
            <postdata>
                <PostEntry>
                    <name>Language</name>
                    <value>ru</value>
                </PostEntry>
                <PostEntry>
                    <name>ReturnURLOk</name>
                    <value>http://abc.ru</value>
                </PostEntry>
                <PostEntry>
                    <name>ReturnURLFault</name>
                    <value>http://abc.ru</value>
                </PostEntry>
            </postdata>
        </register>
    </soap-env:Body>
</soap-env:Envelope>

Пример ответа:

<soap-env:Envelope
    xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:Body>
        <registerResponse
            xmlns="http://www.sirena-travel.ru">
            <retval>
                <session>c857e452e31349d7b2e9a4b1738e9453</session>
                <paycode>01112223334440</paycode>
                <redirect_url>https://sandbox.egopay.ru/payments/request</redirect_url>
            </retval>
        </registerResponse>
    </soap-env:Body>
</soap-env:Envelope>

Важно: более подробное описание запросов к платежному шлюзу и их параметров содержится в основной документации, описывающей взаимодействие с платежным шлюзом.

2.2 Использование профиля в системе ПШ

Параметры, необходимые для формирования фискального чека, могут быть заведены в системе ПШ. Для использования данного функционала необходимо в запросе на регистрацию указать source = ips. При этом передача остальных фискальных параметров не требуется, кроме taxation_system (значение taxation_system может не передаваться если точка продажи имеет только одну выбранную СНО, если более одной - передача параметра обязательна).

Важно: Для корректной работы профиля, запрос на регистрацию заказа в системе ПШ должен содержать те же параметры, которые были переданы при заведении профиля.

Примечание: если все же параметры для формирования чека передаются в запросе на регистрацию, то при source = ips их значения будут проигнорированы.*

Пример запроса:

<soap-env:Envelope
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:Body>
        <register>
            <order>
                <shop_id>123</shop_id>
                <number>12345</number>
            </order>
            <cost>
                <currency>RUB</currency>
                <amount>1010</amount>
            </cost>
            <customer>
                <phone>+79859998877</phone>
                <name>Василий Пупкин</name>
                <email>vasya@mail.ru</email>
            </customer>
            <description>
                <timelimit>2015-04-21T23:23:23</timelimit>
                <sales>
                    <OrderItem>
                        <clearing></clearing>
                        <amount>
                            <currency>RUB</currency>
                            <amount>11350.00</amount>
                        </amount>
                        <number>12399</number>
                        <typename>books</typename>
                        <host>shop</host>
                        <taxation_system>general</taxation_system>
                        <taxes>
                            <tax>
                                <source>ips</source>
                            </tax>
                        </taxes>
                    </OrderItem>
                </sales>
                <refunds/>
            </description>
            <postdata></postdata>
        </register>
    </soap-env:Body>
</soap-env:Envelope>

Ответ аналогичен указанному в п. 2.1.

3. Оформление чеков типа “Возврат Прихода”

Чек типа “Возврат Прихода” может быть сформирован:

3.1 Описание метода refund для формирования чека типа “Возврат Прихода”

Основное назначение метода refund - возврат денежных средств, которые были списаны с карты плательщика за приобретении товара или услуги в точке продажи. Однако, если на сумму возврата необходимо сформировать фискальный чек, то точка продажи должна указать в методе refund элементы (RefundElement) ранее оплаченной корзины, за которые возвращаются денежные средства. Если элементы переданы корректно, то система ПШ сформирует чек типа “Возврат Прихода”.

Важно: идентификатор элемента оплаченной корзины можно получить из ответа сервиса status или получив запрос от сервиса notify. Для активации возврата элементов оплаченной корзины необходимо обратиться в службу тех.поддержки.

Параметры запроса:

параметр обязательное поле(М) / необязательное поле (О) тип назначение комментарий пример
order M complex информация о возвращаемом заказе
order/shop_id M string идентификатор точки продажи
order/number M string идентификатор заказа
cost M complex информация о возвращаемых суммах в рамках заказа
cost/currency M string код валюты RUB
cost/amount M float сумма к возврату
refund_id O string идентификатор операции возврата, присваивается точкой продажи
elements O complex перечень возвращаемых элементов корзины
elements/RefundElement O complex данные по возвращаемому элементу корзины
elements/RefundElement/item_id M string идентификатор элемента корзины
elements/RefundElement/quantity M number (integer) количество товаров/услуг
elements/RefundElement/amount M complex стоимость возвращаемых элементов корзины
elements/RefundElement/amount/amount M float сумма
elements/RefundElement/amount/currency M string код валюты RUB

Пример запроса:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <refund
            xmlns="http://www.sirena-travel.ru">
            <order>
                <shop_id>123</shop_id>
                <number>12345</number>
            </order>
            <cost>
                <currency>RUB</currency>
                <amount>50</amount>
            </cost>
            <refund_id>TEST_REFUND_01</refund_id>
            <elements>
                <RefundElement>
                    <item_id>55779</item_id>
                    <quantity>2</quantity>
                    <amount>
                        <amount>50</amount>
                        <currency>RUB</currency>
                    </amount>
                </RefundElement>
            </elements>
        </refund>
    </soap:Body>
</soap:Envelope>

4. Справочники:

4.1 Размер процентной ставки НДС (параметр percentage)

значение описание
20 ставка НДС 20%
10 ставка НДС 10%
20/120 ставка НДС расч. 20/120
10/110 ставка НДС расч. 10/110
0 ставка НДС 0%
no НДС не облагается

4.2 Системы налогообложения (параметр taxation_system)

аббревиатура описание
general Общая, ОСН
simple_income Упрощенная доход, УСН доход
simple_profit Упрощенная доход минус расход, УСН доход - расход
unified_agricultural Единый сельскохозяйственный налог, ЕСН
patent Патентная система налогообложения, Патент

4.3 Источник данных о налогах (параметр source)

значение описание
shop данные предоставляются точкой продажи
ips данные заведены в профиль на стороне ПШ

4.4 Признаки агента (параметр agent_info/type)

значение описание
bank_paying_agent банковский платежный агент (оказание услуг покупателю (клиенту) пользователем, являющимся банковским платежным агентом)
bank_paying_subagent банковский платежный субагент (оказание услуг покупателю (клиенту) пользователем, являющимся банковским платежным субагентом)
paying_agent платежный агент (оказание услуг покупателю (клиенту) пользователем, являющимся платежным агентом)
paying_subagent платежный субагент (оказание услуг покупателю (клиенту) пользователем, являющимся платежным субагентом)
attorney поверенный (осуществление расчета с покупателем (клиентом) пользователем, являющимся поверенным)
commission_agent комиссионер (осуществление расчета с покупателем (клиентом) пользователем, являющимся комиссионером)
agent иной агент (осуществление расчета с покупателем (клиентом) пользователем, являющимся агентом и не являющимся банковским платежным агентом (субагентом), платежным агентом (субагентом), поверенным, комиссионером)

4.5 Признак предмета расчета (параметр taxation_item_type)

значение описание
commodity товар
excise подакцизный товар
job работа
service услуга
gambling_bet ставка азартной игры
gambling_win выигрыш азартной игры
lottery_bet лотерейный билет
lottery_win выигрыш лотереи
intellectual_activity предоставление результатов интеллектуальной деятельности
payment платеж
agent_commission агентское вознаграждение
composite составной предмет расчета
other иной предмет расчета

4.6 Признак предмета расчета (параметр taxation_item_settlement_method)

значение описание
full_prepayment предоплата 100%
partial_prepayment предоплата
advance аванс
full_payment полный расчет
partial_payment частичный расчет и кредит
credit передача в кредит
credit_payment оплата кредита

5. Ошибки:

код ошибки описание варианты исправления
UNKNOWN_TAX_SOURCE передано значение не из справочника или передаваемое значение не указано в настройках предприятия поправить запрос и переотправить, обратиться в службу тех. поддержки
INVALID_TAX_DATA - не переданы все обязательные значения для блока taxes
- некорректно расcчитан размер налога (amount)
поправить запрос и переотправить
AMBIGUOUS_TAXATION_SYSTEM система ПШ не может однозначно определить систему налогообложения для данного элемента (либо не передается в запросе, либо (в случае использования системы профилей) для одного и того же элемента настроено более одной системы налогообложения поправить запрос и переотправить, обратиться в службу тех. поддержки
UNKNOWN_TAXATION_SYSTEM передано значение не из справочника поправить запрос и переотправить
NO_TAXATION_SYSTEM в системе отсутствуют настройки по системе налогообложения обратиться в службу тех. поддержки
UNKNOWN_TAXATION_ITEM_TYPE передано значение не из справочника поправить запрос и переотправить
UNKNOWN_AGENT_INFO_TYPE передано значение не из справочника поправить запрос и переотправить
UNKNOWN_TAXATION_ITEM_SETTLEMENT_METHOD передано значение не из справочника поправить запрос и переотправить
TAX_SOURCE_AMBIGUOUS система ПШ не может однозначно определить источник данных для формирования чека для данного элемента (либо не передается в запросе, либо (в случае использования системы профилей) для одного и того же элемента подходит более одного профиля поправить запрос и переотправить, обратиться в службу тех. поддержки