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