Чек в заказе

Чек передается в авторизационном запросе . Для этого необходимо в запросе передать дополнительный параметр ChequeItems, в котором передаётся структура в формате JSON, как в следующем примере.

Пример структуры чека в параметре ChequeItems:

{"items":[
{"id": 1,
    "name": "Первый товар",
    "price": 201.45,
    "quantity": 42.345,
    "amount": 8530.40,
    "tax": "vat10",
    "subjtype": 1,
    "fpmode": 1},
{"id": 2,
    "name": "Второй товар",
    "price": 15301.01,
    "quantity": 0.128,
    "amount": 1958.53,
    "tax": "vat20",
    "fpmode": 1}
]}

В структуре передаются следующие параметры позиций чека:

Название

Обязательное поле

Тип значения

Описание

id

Да

int

Позиция в чеке (уникальное число для чека)

name

Да

string(128)

Наименование товара

price

Да

float(10.2)

Стоимость единицы товара (услуги)

quantity

Да

float

Количество/объем товара/услуги в единицах измерения товара (может быть дробным числом)

measure

Нет1

string(25)

Единица измерения товара

amount

Да

float(15.2)

Стоимость позиции price*quantity

tax

Да2

string(10)

Идентификатор ставки налога,

eancodeНет3string(14)EAN-8/UPC-E, EAN-13/UPC-A, ITF-14 код маркировки товара
gs1codeНет3string(120)

GS1 DataMatrix/"Честный Знак" код маркировки товара
Примечание. Код должен быть дополнительно преобразован в BASE64 (URL safe)

furcodeНет3string(20)Код маркировки мехового изделия в формате СС-DDDDDD-СССССССССС (C-символ, D-цифра)
uncodeНет3string(30)Неопознанный код маркировки товара
subjtypeНет4intПризнак предмета расчета

fpmode

Нет2

int

Способ расчета

AgentModeНетintПризнак агента по предмету расчета
TransferOperatorPhoneНетstring(19)Телефон оператора перевода
TransferOperatorNameНетstring(64)Наименование оператора перевода
TransferOperatorAddressНетstring(256)Адрес оператора перевода
TransferOperatorINNНетstring(12)ИНН оператора перевода
PaymentReceiverOperatorPhoneНетstring(19)Телефон оператора по приёму платежей
PaymentAgentOperationНетstring(24)Операция платёжного агента
PaymentAgentPhoneНетstring(19)Телефон платёжного агента
SupplierPhoneНет5string(19)Телефон поставщика
SupplierNameНет5string(64)Наименование поставщика
SupplierINNНет5string(12)ИНН поставщика
ExciseНетnumber(15,2)Акциз
CountryOfOriginНетstring(3)Код страны происхождения товара
NumberOfCustomsDeclarationНетstring(32)Номер таможенной декларации
LineAttributeНетstring(64)Дополнительный реквизит предмета расчета


1Параметр может заполняться только для ФФД 1.2.


2Параметры tax и fpmode не передаются в запросе на отмену или возврат средств.


3Только один из этих кодов маркировки товара может быть передан в позиции чека, передача нескольких кодов недопустима. Внимание! Для формата фискальных данных версии 1.2 не разрешается передавать неопознанный код маркировки товара uncode, следует использовать только один из распознаваемых кодов маркировки (eancode, gs1code или furcode).


4Параметр является обязательным для формата фискальных данных версии 1.2 

Значения параметров price и amount всех позиций в чеке должны быть в одной валюте, и эта валюта должна совпадать с валютой заказа (параметр OrderCurrency в авторизационном запросе).

Сумма всех позиций чека (по параметру amount) должна быть равна сумме заказа (параметр OrderAmount в авторизационном запросе).

Если указанные выше условия не соблюдаются, чек признается неверным и происходит ошибка авторизационного запроса.



5Параметр может заполняться только для ФФД 1.05 и 1.1.

Чек при подтверждении

При двустадийном механизме работы финансовое подтверждение интернет-магазин может осуществить в течение 4 дней в Личном кабинете либо с помощью веб-сервиса.

Для подтверждения оплаты нужно отправить запрос на сервер АПК Ассист методом HTTP POST или SOAP (в кодировке UTF-8).

URL запроса для передачи финансового подтверждения и список параметров запроса подтверждения оплаты совпадают с указанными здесь. Для передачи чека подтверждения в запросе HTTP POST добавляется лишь дополнительный параметр ChequeItems, в котором передаётся структура в формате JSON, как в следующем примере.

Пример структуры чека в параметре ChequeItems:

{"items":[
{"id": 1,
    "name": "Первый товар",
    "price": 201.45,
    "quantity": 21.12,
    "amount": 8530.40,
    "tax": "vat10",
    "fpmode": 1}
{"id": 2,
    "name": "Второй товар",
    "price": 15301.01,
    "quantity": 0.064,
    "amount": 979.26,
    "tax": "vat20",
    "fpmode": 1}
]}

Для передачи чека подтверждения в SOAP запросе добавляется лишь дополнительная повторяющаяся структура ChequeItem, в которой передаются позиции чека, как в следующем примере.

Пример структуры позиций чека ChequeItem:

<chequeitem>
  <id>1</id>
  <name>Первый товар</name>
  <price>201.45</price>
  <quantity>21.12</quantity>
  <amount>8530.40</amount>
  <tax>vat10</tax>
  <fpmode>1</fpmode>
</chequeitem>
<chequeitem>
  <id>2</id>
  <name>Первый товар</name>
  <price>15301.01</price>
  <quantity>0.064</quantity>
  <amount>979.26</amount>
  <tax>vat20</tax>
  <fpmode>1</fpmode>
</chequeitem>

Подтверждение может быть проведено как на всю сумму оплаты, так и на часть суммы. Допускается совершение частичного подтверждения на сумму, не превышающую суммы оплаты, если операция оплаты по кредитной карте была совершена через процессинг, имеющий соответствующие настройки.

Чек подтверждения может содержать все или часть позиций, которые присутствовали в чеке оплаты.

Для каждой позиции чека подтверждения параметры id, name, price должны быть безусловно эквивалентны этим параметрам соответствующей позиции чека оплаты.

Сумма параметров amount всех позиций чека подтверждения должна быть равна сумме подтверждения из поля Amount запроса на подтверждение.

В случае подтверждения на полную сумму не обязательно передавать набор структур ChequeItem соответствующий всему чеку, переданному в заказе. Для подтверждения на полную сумму чек не является обязательным.

Чек в отмене

Отмена отдельных позиций чека может быть выполнена оператором в личном кабинете или посредством обращения к веб-сервису cancel (в формате POST) или wscancel (в формате SOAP).

Для отмены оплаты по отдельным позициям чека через веб-сервис нужно выполнить  запрос (в кодировке UTF-8) к серверу АПК Ассист.

URL запроса для отмены или возврата средств и список параметров запроса отмены оплаты совпадают с указанными здесь значениями . Для передачи чека отмены добавляется лишь повторяющаяся структура ChequeItem, в которой передаются позиции чека, как в следующем примере.

Пример структуры позиции чека ChequeItem:

<chequeitem>
  <id>1</id>
  <name>Первый товар</name>
  <price>201.45</price>
  <quantity>21.12</quantity>
  <amount>8530.40</amount>
  <tax>vat20</tax>
</chequeitem>

В случае проведения отмены на полную сумму не обязательно передавать набор структур ChequeItem соответствующий всему чеку, переданному в заказе. Для отмены на полную сумму чек не является обязательным.

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

Для каждой позиции чека отмены параметры id, name, price должны быть безусловно эквивалентны этим параметрам соответствующей позиции чека оплаты или чека подтверждения при двустадийном механизме работы.

Сумма параметров amount всех позиций чека отмены должна быть равна сумме отмены из поля Amount запроса на отмену.

Для каждой позиции чека отмены значения параметров quantity и amount не должны быть больше, чем значения соответствующих параметров quantity и amount чека оплаты или чека подтверждения (при двустадийном механизме работы) с учетом значений параметров quantity и amount по этой позиции из уже проведенных ранее отмен.

Значения параметров price и amount всех позиций в чеке должны быть в одной валюте, и эта валюта должна совпадать с валютой запроса (параметр Currency в запросе).

Если указанные выше условия не соблюдаются, чек признается неверным и происходит ошибка запроса.

Чек в рекуррентных платежах

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

Затем с указанной периодичностью предприятие инициирует платеж, задавая сумму, а необходимая платежная информация (данные кредитной карты) берется из первоначальной оплаты.

URL запроса для рекуррентного платежа и список параметров запроса совпадают с указанными здесь значениями .

Для передачи чека рекуррентного платежа в запросе HTTP POST добавляется лишь дополнительный параметр ChequeItems, в котором передаётся структура в формате JSON, как в следующем примере.

Пример структуры чека в параметре ChequeItems:

{"items":[
{"id": 1,
    "name": "Первый товар",
    "price": 201.45,
    "quantity": 21.12,
    "amount": 8530.40,
    "tax": "vat10",
    "fpmode": 1}
{"id": 2,
    "name": "Второй товар",
    "price": 15301.01,
    "quantity": 0.064,
    "amount": 979.26,
    "tax": "vat20",
    "fpmode": 1}
]}

Для передачи чека рекуррентного платежа в SOAP запросе добавляется лишь повторяющаяся структура ChequeItem, в которой передаются позиции чека, как в следующем примере.

Пример структуры позиций чека ChequeItem:

<chequeitem>
  <id>1</id>
  <name>Первый товар</name>
  <price>201.45</price>
  <quantity>21.12</quantity>
  <amount>8530.40</amount>
  <tax>vat10</tax>
  <fpmode>1</fpmode>
</chequeitem>
<chequeitem>
  <id>2</id>
  <name>Первый товар</name>
  <price>15301.01</price>
  <quantity>0.064</quantity>
  <amount>979.26</amount>
  <tax>vat20</tax>
  <fpmode>1</fpmode>
</chequeitem>

Наверх