Для получения доступа к сервису фискализации продаж необходимо:
Принцип работы: Система Интернет точки продажи взаимодействует с сервисами ПШ по стандартному протоколу, в рамках которого существует возможность передачи дополнительной информацию о содержимом корзины (которую оплачивает Клиент сайта). Эти данные агрегируются в системе ПШ и затем отправляются на сервер онлайн-кассы. Сервисы онлайн-кассы получают эти данные, фиксируют их на фискальном накопителе, формируют чек и отправляют результат в ОФД.
Сервис фискализации интегрирован в базовый сервис ПШ, отвечающий за операции над заказами - orderv2. Для того, чтобы передать данные для формирования чека, используется метод register. Если данные переданы корректно, данный метод одновременно выполняет и функцию регистрации заказа в системе ПШ и функцию передачи данных, для последующей отправки их в онлайн-кассу.
Параметры, необходимые для формирования фискального чека типа “Приход”, могут быть:
Информация о продаваемых товаре(ах) и/или услуге(ах) (далее элемент корзины) передаются в блоке параметров 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>
Важно: более подробное описание запросов к платежному шлюзу и их параметров содержится в основной документации, описывающей взаимодействие с платежным шлюзом.
Параметры, необходимые для формирования фискального чека, могут быть заведены в системе ПШ. Для использования данного функционала необходимо в запросе на регистрацию указать 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.
Чек типа “Возврат Прихода” может быть сформирован:
Основное назначение метода 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>
значение | описание |
---|---|
20 | ставка НДС 20% |
10 | ставка НДС 10% |
20/120 | ставка НДС расч. 20/120 |
10/110 | ставка НДС расч. 10/110 |
0 | ставка НДС 0% |
no | НДС не облагается |
аббревиатура | описание |
---|---|
general | Общая, ОСН |
simple_income | Упрощенная доход, УСН доход |
simple_profit | Упрощенная доход минус расход, УСН доход - расход |
unified_agricultural | Единый сельскохозяйственный налог, ЕСН |
patent | Патентная система налогообложения, Патент |
значение | описание |
---|---|
shop | данные предоставляются точкой продажи |
ips | данные заведены в профиль на стороне ПШ |
значение | описание |
---|---|
bank_paying_agent | банковский платежный агент (оказание услуг покупателю (клиенту) пользователем, являющимся банковским платежным агентом) |
bank_paying_subagent | банковский платежный субагент (оказание услуг покупателю (клиенту) пользователем, являющимся банковским платежным субагентом) |
paying_agent | платежный агент (оказание услуг покупателю (клиенту) пользователем, являющимся платежным агентом) |
paying_subagent | платежный субагент (оказание услуг покупателю (клиенту) пользователем, являющимся платежным субагентом) |
attorney | поверенный (осуществление расчета с покупателем (клиентом) пользователем, являющимся поверенным) |
commission_agent | комиссионер (осуществление расчета с покупателем (клиентом) пользователем, являющимся комиссионером) |
agent | иной агент (осуществление расчета с покупателем (клиентом) пользователем, являющимся агентом и не являющимся банковским платежным агентом (субагентом), платежным агентом (субагентом), поверенным, комиссионером) |
значение | описание |
---|---|
commodity | товар |
excise | подакцизный товар |
job | работа |
service | услуга |
gambling_bet | ставка азартной игры |
gambling_win | выигрыш азартной игры |
lottery_bet | лотерейный билет |
lottery_win | выигрыш лотереи |
intellectual_activity | предоставление результатов интеллектуальной деятельности |
payment | платеж |
agent_commission | агентское вознаграждение |
composite | составной предмет расчета |
other | иной предмет расчета |
значение | описание |
---|---|
full_prepayment | предоплата 100% |
partial_prepayment | предоплата |
advance | аванс |
full_payment | полный расчет |
partial_payment | частичный расчет и кредит |
credit | передача в кредит |
credit_payment | оплата кредита |
код ошибки | описание | варианты исправления |
---|---|---|
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 | система ПШ не может однозначно определить источник данных для формирования чека для данного элемента (либо не передается в запросе, либо (в случае использования системы профилей) для одного и того же элемента подходит более одного профиля | поправить запрос и переотправить, обратиться в службу тех. поддержки |