Инструменты страницы
Запрос закрытия чека (closeOfdReceipt.do)
Для закрытия чека используется запрос closeOfdReceipt.do
.
С 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.
Пользуясь протоколом REST, тело сообщения запроса следует отправлять с типом: 'Content-Type: application/x-www-form-urlencoded'.
Параметры запроса
Параметры запроса представлены в таблице ниже.
Название | Тип | Обязательно | Описание | Версия ФФД |
---|---|---|---|---|
|
AN..30 | Да |
Логин служебной учётной записи продавца. При передаче логина и пароля для аутентификации в платёжном шлюзе параметр |
Все версии. |
|
AN..200 | Да |
Пароль служебной учётной записи продавца. При передаче логина и пароля для аутентификации в платёжном шлюзе параметр |
Все версии. |
|
ANS..36 | Обязательно передать либо mdOrder , либо orderNumber |
Номер заказа в платёжном шлюзе. Уникален в пределах платёжного шлюза. |
Все версии. |
|
ANS..32 | Обязательно передать либо mdOrder , либо orderNumber |
Номер (идентификатор) заказа в системе магазина, уникален для каждого магазина в пределах системы. Если номер заказа генерируется на стороне платёжного шлюза, этот параметр передавать необязательно |
Все версии. |
|
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 | См. примечание ниже. |
Электронная почта покупателя, на которую будут отправлен кассовый чек. В большинстве ОФД отправка чека поддерживается только на один электронный адрес. Некоторые ОФД поддерживают отправку чека на несколько электронных адресов — в этом случае можно указать несколько адресов электронной почты через запятую и без пробелов. О возможности отправки чека на несколько адресов уточняйте у вашего ОФД. Обязательно следует передать один из двух параметров: email или phone. |
Все версии. |
|
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
Обязательность параметров указана для использования в рамках блока. Если блок необязательный и отсутствует, то и параметры в него входящие не должны передаваться.
items
состоит из следующих элементов.
Название | Тип | Обязательно | Описание | Версия ФФД |
---|---|---|---|---|
|
ANS..12 | Да |
Уникальный идентификатор товарной позиции внутри корзины заказа. |
Все версии. |
|
ANS..100 | Да |
Наименование или описание товарной позиции в свободной форме.
Используйте |
Все версии. |
|
Не актуально | Нет |
Дополнительный блок с параметрами описания товарной позиции. Описание его атрибутов представлено ниже. Ограничение размера поля - 1024 байт. |
Все версии. |
|
N..18 | Да |
Элемент, описывающий общее количество товарных позиций одного |
Все версии. |
|
N..12 | Нет |
Сумма стоимости всех товарных позиций одного
При расчёте параметра |
Все версии. |
|
N3 | Нет |
Код валюты товарной позиции ISO 4217. Если не указан, считается равным валюте заказа. |
Все версии. |
|
ANS..100 | Да |
Номер (идентификатор) товарной позиции в системе магазина.
Во всех методах передача артикула |
Все версии. |
|
Не актуально | Только для магазинов с настройками фискализации |
Дополнительный тег с атрибутами описания налога. Описание вложенных тегов представлено ниже. |
Все версии. |
|
N..18 | Только для магазинов с настройками фискализации |
Стоимость одной товарной позиции в минимальных единицах валюты. Обязательно для продавцов с фискализацией.
|
Все версии. |
|
См. описание. | Только для магазинов с настройками фискализации |
Блок атрибутов товарной позиции. См. описание ниже. |
1.05 и более поздние версии. |
itemAttributes
Ниже представлены параметры блока itemAttributes (см. пример и таблицу ниже).
"itemAttributes": [{"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 . |
Дополнительная информация по товарной позиции. |
Все версии. |
|
AN..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 | Нет |
Код ошибки. Может отсутствовать, если результат не привёл к ошибке. |
Все версии. |
|
|
Нет |
|
Все версии. |
Коды ошибок
Код ошибки | Текст ошибки |
---|---|
1 | [mdOrder ] или [orderNumber ] не задан. |
5 | Неверная сумма. |
6 | Заказ не найден. |
6 | mdOrder и orderNumber относятся к разным заказам. |
6 | Заказ на предоплату не найден. |
7 |
Системная ошибка. |
7 | Нет прав на закрытие ОФД чека для текущего заказа. |
7 | Отключена возможность отправки документов в ОФД. |
7 | Невозможно закрыть ОФД чек при текущем состоянии заказа. |
7 | Не найден изначальный ОФД чек по заказу. |
7 | Текущая активная ОФД система мерчанта не совпадает с ОФД системой последнего чека. |
7 | Тип оплаты для всех позиций в корзине изначального чека отличен от типа 'Полная предоплата'. |
7 | Тип оплаты для всех позиций в корзине отличен от типа 'Полная оплата'. |
7 | Срок превышен. |
7 | Создание ОФД чека должно быть выключено, если передан mdOrder заказа на предоплату в качестве параметр заказа. |
7 | Нет прав на создание заказа на частичную оплату для указанного заказа на предоплату. |
7 | Невозможно создать заказ на частичную оплату для заказа на предоплату в текущем состоянии. |
7 | Отсутствуют успешные ОФД чеки для заказа на предоплату. |
7 | Текущая активная ОФД система мерчанта не совпадает с ОФД системой последнего чека. |
7 | Способ метода расчета для заказа на предоплату отличен от 'Предоплата'(2) и 'Аванс'(3). |
7 | Предыдущий заказ(ы) для указанного заказа на предоплату не был оплачен. |
7 | Нет прав на создание ОФД чека вручную. |
7 | Неизвестная ОФД система. |
7 | ОФД система из запроса не совпадает с активной ОФД системой мерчанта. |
7 | Продавец с указанным id не найден. |
8 | [orderBundle ] неверен. |
8 | [additionalOfdParams ] неверен. |
8 | [jsonParams ] неверен. |
8 | Общая сумма неверна. |
Примеры
Пример запроса с корзиной
userName=username-api&password=testPwd&orderBundle={"customerDetails":{"phone":"%2B79888888866","inn":"516974792202","passport":"4507 443564"},"cartItems":{"items":[{"positionId":1,"name":"По-аджарски \"Лодочка\" SMALL","quantity":{"value":"1","measure":"0"},"itemCode":"270_235.00","itemPrice":23500,"tax":{"taxType":0,"taxSum":0},"itemAttributes":{"attributes":[{"name":"nomenclature","value":"010463003407001221CMK45BrhN0WLf"},{"name":"paymentMethod","value":"4"},{"name":"paymentObject","value":"30"},{"name":"agent_info.type","value":"7"},{"name":"agent_info.paying.operation","value":"test operation"},{"name":"agent_info.paying.phones","value":"%2B79161234123"},{"name":"agent_info.paymentsOperator.phones","value":"%2B79161234456"},{"name":"agent_info.MTOperator.phones","value":"%2B79161234789"},{"name":"agent_info.MTOperator.name","value":"MT operator"},{"name":"agent_info.MTOperator.address","value":"Moscow"},{"name":"agent_info.MTOperator.inn","value":"8634330204"},{"name":"supplier_info.phones","value":"%2B79161234333"},{"name":"supplier_info.name","value":"Supplier"},{"name":"supplier_info.inn","value":"287381373424"},{"name":"excise","value":"10.0"},{"name":"country_code","value":"810"},{"name":"declaration_number","value":"12332234533"},{"name":"userData","value":"user data"},{"name":"markQuantity.numerator","value":"1"},{"name":"markQuantity.denominator","value":"2"},{"name":"sectoralItemProps[0].federalId","value":"001"},{"name":"sectoralItemProps[0].date","value":"10.10.2021"},{"name":"sectoralItemProps[0].number","value":"123/4567"},{"name":"sectoralItemProps[0].value","value":"value1"},{"name":"sectoralItemProps[1].federalId","value":"003"},{"name":"sectoralItemProps[1].date","value":"11.10.2021"},{"name":"sectoralItemProps[1].number","value":"321/4567"},{"name":"sectoralItemProps[1].value","value":"value2"}]}}]}}&mdOrder=c4626bfb-96f8-7882-80f1-28ce0128092a
Пример запроса без корзины
password:password; amount:100000; additionalOfdParams:{"additional_check_props":"test"}; jsonParams:{"email":"test@test.com"}; userName:atolUser; mdOrder:9766d33c-7c32-7e55-a150-f61e0cc4a648
Пример ответа
{ "success": true }