Инструменты страницы
Запрос закрытия чека (closeOfdReceipt)
Для закрытия чека используется запрос closeOfdReceipt
.
С 1 июля 2019 года владельцы онлайн-касс должны формировать чеки для зачёта и возврата предоплаты. Платёжный шлюз позволяет зарегистрировать второй чек (чек закрытия) без создания нового заказа с помощью запроса closeOfdReceipt
.
В запросе должен присутствовать либо параметр orderNumber
, либо mdOrder
.
Содержимое чека закрытия зависит от того, передавалась ли в запросе на закрытие корзина заказа (orderBundle
)
Корзина передавалась | Корзина товаров будет передана в ОФД в том виде, в котором была передана в шлюз в запросе на закрытие чека. |
---|---|
Корзина не передавалась | Для завершённого заказа
Для возврата Закрытие чека может быть сделано, только если для заказа был осуществлён частичный, а не полный возврат.
|
- Закрывающий чек может быть отправлен несколько раз для одного заказа. при этом нет ограничения на сумму, т. е. сумма указанная в закрывающем чеке может быть как меньше. так и больше суммы заказа.
- Исключение составляют заказы, для которых был сделан возврат. Для заказов, по которым был сделан возврат, закрытие чека может быть осуществлено, только если сумма всех возвратов меньше подтверждённой суммы заказа (т. е., не было возврата на полную сумму).
В настоящем документе при описании параметров запросов и ответов используются следующие обозначения типов данных:
- A<n> – последовательность латинских букв длины <n>;
- A..<n> – последовательность латинских букв длиной, не превышающей <n>;
- N<n> – последовательность цифр длины <n>;
- N..<n> – последовательность цифр длиной, не превышающей <n>;
- AN<n> – последовательность латинских букв и цифр фиксированной длины <n>;
- AN..<n> – последовательность латинских букв и цифр длиной, не превышающей <n>;
- ANS<n> – последовательность латинских букв, цифр и символов фиксированной длины <n>
- ANS..<n> – последовательность латинских букв, цифр и символов длиной, не превышающей <n>;
- UTC – дата и время, при этом: дата должна быть передана без указания часового пояса, время московское, для протокола SOAP используется стандартная кодировка xs:dateTime.
Параметры запроса
Параметры запроса представлены в таблице ниже.
Название | Тип | Обязательно | Описание | Версия ФФД |
---|---|---|---|---|
|
ANS..36 | Обязательно передать либо mdOrder , либо merchantOrderNumber |
Номер заказа в платёжном шлюзе. Уникален в пределах платёжного шлюза. |
Все версии. |
|
ANS..32 | Обязательно передать либо mdOrder , либо merchantOrderNumber |
Номер (идентификатор) заказа в системе магазина. |
Все версии. |
|
N..12 | Нет |
Сумма платежа в минимальных единицах валюты. |
Все версии. |
|
См. столбец с описанием. | Нет | В настоящее время не используется |
Все версии. |
|
Блок данных для передачи дополнительных параметров ОФД | Да |
Некоторые параметры блока Передача этого блока возможна только при использовании следующих ОФД:
| |
|
Не актуально | Да |
Блок, содержащий корзину товаров заказа. Описание его атрибутов представлено ниже. |
Все версии. |
orderBundle
orderBundle
состоит из следующих элементов.
Название | Тип | Обязательно | Описание | Версия ФФД |
---|---|---|---|---|
|
ANS..21 | Нет |
Дата создания заказа в формате |
Все версии. |
|
Не актуально | Нет |
Блок с атрибутами данных о покупателе. Описание его атрибутов представлено ниже. |
Все версии. |
|
Не актуально | Да |
Блок с атрибутами товарных позиции корзины товаров. Описание его атрибутов представлено ниже. |
Все версии. |
|
массив ANS..19 | Нет | Ниже представлены параметры блока agent . (Перейти к описанию.) |
Все версии. |
|
массив ANS..19 | Нет |
Массив телефонов поставщика в формате +N. |
Все версии. |
agent
Название | Тип | Обязательно | Описание |
---|---|---|---|
|
N..2 | Да (если передаётся блок) |
Тип агента, доступны следующие значения:
|
|
|
Нет |
|
|
|
Нет |
|
|
массив ANS..19 | Нет |
Массив телефонов оператора по приему платежей в формате +N. |
|
массив ANS..19 | Нет |
Массив телефонов оператора перевода в формате +N. |
|
ANS..64 | Нет |
Наименование оператора перевода. |
|
ANS..256 | Нет |
Адрес оператора перевода. |
|
N10..12 | Нет |
ИНН оператора перевода. |
customerDetails
customerDetails
состоит из следующих элементов.
Обязательность параметров указана для использования в рамках блока. Если блок необязательный и отсутствует, то и параметры в него входящие не должны передаваться.
Название | Тип | Обязательно | Описание | Версия ФФД |
---|---|---|---|---|
|
ANS..40 | См. примечание ниже. |
Адрес электронной почты покупателя. Можно указать несколько адресов электронной почты через запятую и без пробелов - в этом случае чек будет отправлен на все указанные адреса. |
Все версии. |
|
NS..12 | См. примечание ниже. |
Номер телефона клиента. Примеры:
В случае передачи номера в отдельном параметре и в дополнительных параметрах, в качестве основного использоваться будет номер, указанный в настоящем параметре
При использовании АТОЛ фискализации параметр |
Все версии. |
|
ANS..40 | Нет |
Способ связи с покупателем. |
Все версии. |
|
|
Нет |
Все версии. |
|
|
ANS..100 | Нет |
Фамилия, имя и отчество плательщика. |
1.05 и более поздние версии. |
|
ANS..100 | Нет |
Серия и номер паспорта плательщика в следующем формате: |
1.05 и более поздние версии. |
|
N..12 | Нет |
Идентификационный номер налогоплательщика. Допускается передавать 10 или 12 символов. |
1.05 и более поздние версии. |
Обязательно следует передать один из двух параметров: email
или phone
.
deliveryInfo
deliveryInfo
состоит из следующих элементов.
Название | Тип | Обязательно | Описание | Версия ФФД |
---|---|---|---|---|
|
ANS..20 | Нет |
Способ доставки. |
Все версии. |
|
A..2 | Да |
Двухбуквенный код страны доставки. |
Все версии. |
|
ANS..40 | Да |
Город доставки. |
Все версии. |
|
ANS..255 | Да |
Адрес доставки. |
Все версии. |
Обязательность параметров указана для использования в рамках блока. Если блок необязательный и отсутствует, то и параметры в него входящие не должны передаваться.
cartItems
cartItems
состоит из следующих элементов.
Обязательность параметров указана для использования в рамках блока. Если блок необязательный и отсутствует, то и параметры в него входящие не должны передаваться.
Название | Тип | Обязательно | Описание | Версия ФФД |
---|---|---|---|---|
|
Не актуально | Да |
Тэг с параметрами, содержащими информацию по одной товарной позиции в Корзине.
Номер товарной позиции указывается в виде атрибута тэга:
По каждой товарной позиции в запросе должен передаваться отдельный тэг |
Все версии. |
items
items
состоит из следующих элементов.
Название | Тип | Обязательно | Описание | Версия ФФД |
---|---|---|---|---|
|
ANS..12 | Да |
Уникальный идентификатор товарной позиции внутри корзины заказа. |
Все версии. |
|
ANS..100 | Да |
Наименование или описание товарной позиции в свободной форме.
Используйте |
Все версии. |
|
Не актуально | Нет |
Дополнительный блок с параметрами описания товарной позиции. Описание его атрибутов представлено ниже. Ограничение размера поля - 1024 байт. |
Все версии. |
|
N..18 | Да |
Элемент, описывающий общее количество товарных позиций одного |
Все версии. |
|
N..12 | Нет |
Сумма стоимости всех товарных позиций одного
При расчёте параметра |
Все версии. |
|
N3 | Нет |
Код валюты товарной позиции ISO 4217. Если не указан, считается равным валюте заказа. |
Все версии. |
|
ANS..100 | Да |
Номер (идентификатор) товарной позиции в системе магазина.
Во всех методах передача артикула |
Все версии. |
|
Не актуально | Только для магазинов с настройками фискализации |
Дополнительный тег с атрибутами описания налога. Описание вложенных тегов представлено ниже. |
Все версии. |
|
N..18 | Только для магазинов с настройками фискализации |
Стоимость одной товарной позиции одного
|
Все версии. |
|
См. описание. | Только для магазинов с настройками фискализации |
Тэг, предназначенный для передачи набора атрибутов товарной позиции. Атрибуты следует указывать следующим образом.
<attributes name="название_атрибута_1">значение_атрибута_1</attributes> <attributes name="название_атрибута_2">значение_атрибута_2</attributes> См. описание ниже. |
1.05 и более поздние версии. |
itemAttributes
itemAttributes
содержит в себе массив attributes
, в этом массиве необходимо указать атрибуты товарной позиции (см. пример и таблицу ниже).
"itemAttributes":{"attributes":[{"name":"paymentMethod","value":"1"},{"name":"paymentObject","value":"1"}]}
Название | Тип | Обязательно | Описание | Версия ФФД |
---|---|---|---|---|
|
N..2 |
Да |
Тип оплаты возможны следующие значения:
Приоритизация передачи значения происходит по следующему принципу (указано в убывающем порядке приоритета):
Для paymentMethod значением по умолчанию является 1 (полная предварительная оплата до момента передачи предмета расчета). |
1.05 и более поздние версии. |
|
N..2 |
Да |
Тип оплачиваемой позиции, возможны следующие значения:
Указанные выше значения доступны для ФФД 1.05.
Приоритизация передачи значения происходит по следующему принципу (указано в убывающем порядке приоритета):
Для paymentObject значением по умолчанию является 1 (товар). |
1.05 и более поздние версии. |
|
ANS | да (если передан markQuantity ) |
Код товарной позиции. Принимаются только первые 256 байт. Возможные форматы для передачи:
|
1.05 и более поздние версии. |
|
| Нет |
Дробное количество маркированного товара. |
1.2 и более поздние версии. |
|
N..2 | Обязателен, только если передан объект agent_info . |
Тип агента, возможно одно из следующих значений:
|
1.05 и более поздние версии. |
|
|
Нет |
|
1.05 и более поздние версии. |
|
|
Нет |
|
1.05 и более поздние версии. |
|
Массив ANS..19 | Нет |
Массив телефонов оператора по приёму платежей в формате +N. |
1.05 и более поздние версии. |
|
Массив ANS..19 | Нет |
Массив телефонов оператора перевода в формате +N. |
1.05 и более поздние версии. |
|
ANS..64 | Нет |
Наименование оператора перевода. |
1.05 и более поздние версии. |
|
ANS..256 | Нет |
Адрес оператора перевода. |
1.05 и более поздние версии. |
|
N10..12 | Нет |
ИНН оператора перевода. |
1.05 и более поздние версии. |
|
Maccив ANS..19 | Нет |
Массив телефонов поставщика в формате +N. |
1.05 и более поздние версии. |
|
ANS..256 | Нет |
Наименование поставщика. |
1.05 и более поздние версии. |
|
N10..12 | Нет |
ИНН поставщика. |
1.05 и более поздние версии. |
quantity
quantity
состоит из следующих элементов.
Название | Тип | Обязательно | Описание | Версия ФФД |
---|---|---|---|---|
|
N..18 | Да |
Количество товарных позиций данного |
Все версии. |
|
ANS..20 | Да |
Мера измерения количества товарной позиции. |
Все версии. |
Если ФФД версии 1.2 и более поздней, то здесь передаются параметры:
Название | Тип | Обязательно | Описание | Версия ФФД |
---|---|---|---|---|
|
N1 | Да |
Количество товарных позиций данного positionId. Для версии ФФД 1.2+ значение всегда 1. |
1.2 и более поздние версии. |
|
N..3 | Да |
Единица измерения количества предмета расчета. При ФФД версии 1.2+ , если переданы параметры nomenclature и markQuantity, значение всегда 0. В остальных случаях принимает значения |
1.2 и более поздние версии. |
Возможные значения measure
Значение | Описание |
---|---|
0 | Применяется для предметов расчета, которые могут быть реализованы поштучно или единицами (а также в случае, если предметом расчета является товар, подлежащий обязательной маркировке средством идентификации (передан mark_code )) |
10 | Грамм |
11 | Килограмм |
12 | Тонна |
20 | Сантиметр |
21 | Дециметр |
22 | Метр |
30 | Квадратный сантиметр |
31 | Квадратный дециметр |
32 | Квадратный метр |
40 | Миллилитр |
41 | Литр |
42 | Кубический метр |
50 | Киловатт час |
51 | Гигакалория |
70 | Сутки (день) |
71 | Час |
72 | Минута |
73 | Секунда |
80 | Килобайт |
81 | Мегабайт |
82 | Гигабайт |
83 | Терабайт |
255 | Применяется при использовании иных мер измерения |
markQuantity
Параметры тэга markQuantity:
Обязательность параметров указана для использования в рамках тэга. Если тэг необязательный и в запросе отсутствует, то и входящие в него параметры не должны передаваться.
Название | Тип | Обязательно | Описание |
---|---|---|---|
|
N..12 | да |
Числитель дробной части предмета расчета. |
|
N..12 | да |
Знаменатель дробной части предмета расчета. |
itemDetails
itemDetails
состоит из следующих элементов.
Обязательность параметров указана для использования в рамках блока. Если блок необязательный и отсутствует, то и параметры в него входящие не должны передаваться.
Название | Тип | Обязательно | Описание | Версия ФФД |
---|---|---|---|---|
|
ANS..255 | Да |
Параметр описывающий дополнительную информацию по товарной позиции. Описание его атрибутов представлено ниже. |
Все версии. |
itemDetailsParams
itemDetailsParams
состоит из следующих элементов.
Название | Тип | Обязательно | Описание | Версия ФФД |
---|---|---|---|---|
|
ANS..255 | Условно. Обязательно при наличии параметра itemDetailsParams . |
Дополнительная информация по товарной позиции. |
Все версии. |
|
ANS..255 | Условно. Обязательно при наличии параметра itemDetailsParams . |
Наименование параметра описания детализации товарной позиции. |
Все версии. |
tax
tax
состоит из следующих элементов.
Название | Тип | Обязательно | Описание | Версия ФФД |
---|---|---|---|---|
|
N..2 | Нет |
Ставка НДС, доступны следующие значения:
Если в запросе не передаётся корзина с данными фискализации, оператору фискальных данных передаются значения по умолчанию, указанные в настройках личного кабинета (подробнее см. инструкцию по работе с личным кабинетом). |
Все версии. |
|
N..18 | Нет |
Сумма налога, высчитанная продавцом. Указывается в минимальных единицах валюты. |
Все версии. |
additionalOfdParams
additionalOfdParams
состоит из следующих элементов.
Название | Тип | Обязательно | Описание | Версия ФФД |
---|---|---|---|---|
|
N..2 | Обязателен, только если передан объект agent_info . |
Тип агента, возможно одно из следующих значений:
|
1.05 и более поздние версии. |
|
|
Нет |
|
1.05 и более поздние версии. |
|
|
Нет |
|
1.05 и более поздние версии. |
|
Массив ANS..19 | Нет |
Массив телефонов оператора по приёму платежей в формате +N. |
1.05 и более поздние версии. |
|
ANS..256 | Нет |
Адрес оператора перевода. |
1.05 и более поздние версии. |
|
N10..12 | Нет |
ИНН оператора перевода. |
1.05 и более поздние версии. |
|
ANS..64 | Нет |
Наименование оператора перевода. |
1.05 и более поздние версии. |
|
Массив ANS..19 | Нет |
Массив телефонов оператора перевода в формате +N. |
1.05 и более поздние версии. |
|
Maccив ANS..19 | Нет |
Массив телефонов поставщика в формате +N. |
1.05 и более поздние версии. |
|
A..256 | Нет |
ФИО кассира. |
1.05 и более поздние версии. |
|
ANS..16 | Нет |
Дополнительный реквизит чека. |
1.05 и более поздние версии. |
|
ANS..24 | Нет |
Наименование дополнительного реквизита пользователя. |
1.05 и более поздние версии. |
|
ANS..24 | Нет |
Значение дополнительного реквизита пользователя. |
1.05 и более поздние версии. |
|
N..12 | Нет |
ИНН кассира |
1.2 и более поздние версии. |
|
ANS..256 | Нет |
Адрес покупателя (клиента). |
1.2 и более поздние версии. |
|
NS10 | Нет |
Дата рождения покупателя (клиента) в формате «dd.mm.yyyy» |
1.2 и более поздние версии. |
|
N3 | Нет |
Числовой код страны, гражданином которой является покупатель (клиент). Код страны указывается в соответствии с Общероссийским классификатором стран мира ОКСМ. |
1.2 и более поздние версии. |
|
N2 | Нет |
Числовой код вида документа, удостоверяющего личность (например, 21 - паспорт гр. РФ). |
1.2 и более поздние версии. |
|
NS11 | Нет |
Серия и номер паспорта плательщика: |
1.2 и более поздние версии. |
|
ANS..64 | Нет |
Электронный адрес покупателя. Обязательно должно быть заполнено строго одно из полей: |
1.2 и более поздние версии. |
|
NS..19 | Нет |
Телефон покупателя. Вместе с кодом страны без пробелов и дополнительных символов, кроме символа «+» (номер «+371 2 1234567» необходимо передать как «+37121234567»). Обязательно должно быть заполнено строго одно из полей: |
1.2 и более поздние версии. |
|
N12 | Нет |
ИНН покупателя. |
1.2 и более поздние версии. |
|
ANS..256 | Нет |
Наименование покупателя (клиента). |
1.2 и более поздние версии. |
|
|
Нет |
|
1.2 и более поздние версии. |
|
|
Нет |
|
1.2 и более поздние версии. |
|
|
Нет |
|
1.2 и более поздние версии. |
|
|
Нет |
|
1.2 и более поздние версии. |
|
NS10 | Нет |
Дата нормативного акта федерального органа исполнительной власти, регламентирующего порядок заполнения реквизита «значение отраслевого реквизита», в формате: |
1.2 и более поздние версии. |
|
ANS | Нет |
Идентификатор ФОИВ. Должно принимать одно из значений справочника ФОИВ. |
1.2 и более поздние версии. |
|
N..32 | Нет |
Номер нормативного акта федерального органа исполнительной власти, регламентирующего порядок заполнения реквизита «значение отраслевого реквизита» |
1.2 и более поздние версии. |
|
ANS..256 | Нет |
Состав значений, определенных нормативным актом федерального органа исполнительной власти |
1.2 и более поздние версии. |
Параметры ответа
Параметры ответа представлены в таблице ниже.
Название | Тип | Обязательно | Описание | Версия ФФД |
---|---|---|---|---|
|
A..5 | Да |
Указывает на успешность запроса. Доступны следующие значения:
|
Все версии. |
|
N..2 | Нет |
Код ошибки. |
Все версии. |
|
|
Нет |
|
Все версии. |
Коды ошибок
Код ошибки | Текст ошибки |
---|---|
0 |
Обработка запроса прошла без системных ошибок. |
1 |
Заказ с таким номером уже обработан. |
1 |
Неверный номер заказа. |
3 |
Неизвестная валюта. |
4 |
Номер заказа не может быть пуст. |
4 |
Имя продавца не может быть пустым. |
4 |
Отсутствует сумма. |
4 |
URL возврата не может быть пуст. |
4 |
Пароль не может быть пуст. |
5 |
Доступ запрещён. |
5 |
Пользователь отключён. |
7 |
Системная ошибка. |
8 |
|
8 |
Доп. параметр |
8 |
|
Примеры
Пример запроса с корзиной
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant"> <soapenv:Header> <soapenv:Body> <mer:closeOfdReceipt> <request mdOrder="09fddf4a-fd30-76ca-ad2e-36f50128092a" amount="23500"/> <orderBundle> <customerDetails> <phone>+79123456789</phone> <inn>516974792202</inn> <passport>4507 443564</passport> </customerDetails> <!-- Состав Корзины --> <cartItems> <!-- Zero or more repetitions: --> <items positionId="1"> <name>"По-аджарски \"Лодочка"\" SMALL"</name> <quantity measure="0">1</quantity> <itemCode>270_235.00</itemCode> <itemPrice>23500</itemPrice> <tax> <taxType>0</taxType> <taxSum>0</taxSum> </tax> <itemAttributes> <attributes name="nomenclature">010463003407001221CMK45BrhN0WLf</attributes> <attributes name="paymentMethod">1</attributes> <attributes name="paymentObject">30</attributes> <attributes name="agent_info.type">7</attributes> <attributes name="agent_info.paying.operation">testoperation</attributes> <attributes name="agent_info.paying.phones">+79123456789</attributes> <attributes name="agent_info.paymentsOperator.phones">+79123456789</attributes> <attributes name="agent_info.MTOperator.phones">+79123456789</attributes> <attributes name="agent_info.MTOperator.name">MT operator</attributes> <attributes name="agent_info.MTOperator.address">Moscow</attributes> <attributes name="agent_info.MTOperator.inn">8634330204</attributes> <attributes name="supplier_info.phones">+79123456789</attributes> <attributes name="supplier_info.name">Supplier</attributes> <attributes name="supplier_info.inn">287381373424</attributes> <attributes name="excise">10.0</attributes> <attributes name="country_code">810</attributes> <attributes name="declaration_number">12332234533</attributes> <attributes name="userData">user data</attributes> <attributes name="markQuantity.numerator">1</attributes> <attributes name="markQuantity.denominator">2</attributes> <attributes name="sectoralItemProps[0].federalId">001</attributes> <attributes name="sectoralItemProps[0].date">10.10.2021</attributes> <attributes name="sectoralItemProps[0].number">123/4567</attributes> <attributes name="sectoralItemProps[0].value">value1</attributes> <attributes name="sectoralItemProps[1].federalId">003</attributes> <attributes name="sectoralItemProps[1].date">10.10.2021</attributes> <attributes name="sectoralItemProps[1].number">321/4567</attributes> <attributes name="sectoralItemProps[1].value">value2</attributes> </itemAttributes> </items> </cartItems> </orderBundle> </mer:closeOfdReceipt> </soapenv:Body> </soapenv:Envelope>
Пример запроса без корзины
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant"> <soapenv:Header/> <soapenv:Body> <mer:closeOfdReceipt> <order merchantOrderNumber="78ds901234567890" description=" " amount="15000" currency=" " language=" " pageView="DESKTOP" sessionTimeoutSecs=" " bindingId=" " expirationDate="2014-09-08T14:14:14"> <params name="param1" value="valueParam1"/> <params name="param2" value="valueParam2"/> <orderId>666</orderId> </order> </mer:closeOfdReceipt> </soapenv:Body> </soapenv:Envelope>
Пример ответа
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns1:closeOfdReceiptResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant"> <return> <success>true</success> </return> </ns1:closeOfdReceiptResponse> </soap:Body> </soap:Envelope>